
//change the status of a cell with arguments - grid, i, j and flag
//check grid, i, j, flag
//return 0 if successfully, otherwise return 1
int changeCell(char *cells, int i, int j, char flag);

//create a new grid with arguments - width and height
//check the value of width and height, return 0 if there is invalid value
//otherwise, return a pointer to a new grid with all cells dead
char* createNewGrid(int width, int height);

//count the number of alive cell around
//check grid, i, j, particularly when i, j pointing the border of the grid
int count(char *cells, int i, int j);

//change the whole grid according to the previous grid
//count 0-1 or 4-8, cell dead; count 3, cell live
char* changeGrid(char *preCells);
